﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CapaLogica.CL.Grupo;

namespace CapaLogica.CL.PeriodoLectivo
{
    public class CL_PeriodoLectivo
    {
        private int _id;

        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        private DateTime _fechaInicio;

        public DateTime FechaInicio
        {
            get { return _fechaInicio; }
            set { _fechaInicio = value; }
        }
        private DateTime _fechaFin;

        public DateTime FechaFin
        {
            get { return _fechaFin; }
            set { _fechaFin = value; }
        }

        private List<CL_Grupo> grupos;

        public List<CL_Grupo> Grupos
        {
            get 
            {
                try
                {
                    if (grupos == null)
                    {
                        grupos = new GrupoPersistente().buscarGruposDePeriodoLectivo(Id);
                    }
                    return grupos; 
                }
                catch (Exception ex)
                {
                    
                    throw ex;
                }              
            }
            set { grupos = value; }
        }

        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="pFechaInicio">pFechaInicio, tipo DateTime</param>
        /// <param name="pFechaFin">pFechaFin, tipo DateTime</param>
        /// <remarks></remarks>
        internal  CL_PeriodoLectivo(DateTime pFechaInicio, DateTime pFechaFin): this(-1, pFechaInicio, pFechaFin)
        {
            
        }


        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="pId">Codigo del periodo lectivo, tipo int</param>
        /// <param name="pFechaInicio">pFechaInicio, tipo DateTime</param>
        /// <param name="pFechaFin">pFechaFin, tipo DateTime</param>
        /// <remarks></remarks>
        internal   CL_PeriodoLectivo(int pId, DateTime pFechaInicio, DateTime pFechaFin)
        {
            Id = pId;
            FechaInicio = pFechaInicio;
            FechaFin = pFechaFin;
        }
    }
}
